home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 1 / Cream of the Crop 1.iso / PROGRAM / WCOMM120.ARJ / WARPCOMM.HPP < prev    next >
C/C++ Source or Header  |  1991-02-16  |  2KB  |  68 lines

  1. //          Warp Communications Library
  2. //          Copyright (C) 1991 Trevor Bell, All Rights Reserved
  3.  
  4. #define MK_INT(high, low) ((((unsigned int)(high)) << 8) + ((unsigned int)(low)))
  5.  
  6. class COM_port {
  7.     volatile unsigned char *receive_buffer;
  8.     volatile unsigned char *xmit_buffer;
  9.  
  10.     unsigned int receive_buffer_size;
  11.     unsigned int xmit_buffer_size;
  12.  
  13.     volatile unsigned int xmit_tail, xmit_head;
  14.     volatile unsigned int receive_tail, receive_head;
  15.     unsigned int
  16.     base,       // base register
  17.     ier_reg,    // interrupt enable register
  18.     iir_reg,    // interrupt identification register
  19.     lcr_reg,    // line control register
  20.     mcr_reg,    // modem control register
  21.     lsr_reg,    // line status register
  22.     msr_reg;    // modem status register
  23.  
  24.     unsigned int port_num;
  25.     void interrupt (far *old_async)(...);
  26.  
  27. public:
  28.     int CD;
  29.     unsigned int async_irq;
  30.     unsigned int com_baudrate;
  31.     void isr(void);
  32.     void set_baudrate(unsigned int baud_rate);
  33.     int char_waiting(void);
  34.     void send_modem_string(char *s);
  35.     void set_rts(unsigned int i);
  36.     void set_dtr(unsigned int i);
  37.     void purge_receive_buffer(void);
  38.     void purge_xmit_buffer(void);
  39.     void open(unsigned int port, unsigned int baud_rate, unsigned int irq,
  40.         unsigned int base_address, unsigned int r_size, unsigned int x_size);
  41.     void close(void);
  42.     void out_buf(unsigned char *s, unsigned int length);
  43.     void get_buf(unsigned char *s, unsigned int length);
  44.     unsigned char read_ier (void);
  45.     unsigned char read_lcr (void);
  46.     unsigned char read_mcr (void);
  47.     unsigned char read_lsr (void);
  48.     unsigned char read_msr (void);
  49.     COM_port& operator<< (char ch1);
  50.     COM_port& operator<< (unsigned char ch1);
  51.     COM_port& operator<< (char *s);
  52.     COM_port& operator<< (unsigned int &s);
  53.     COM_port& operator>> (char &ch1);
  54.     COM_port& operator>> (unsigned char &ch1);
  55.     COM_port& operator>> (unsigned int &s);
  56.     COM_port& operator>> (char *s);
  57.     COM_port(void);
  58. };
  59.  
  60. void interrupt far normal_async_isr0(...);
  61. void interrupt far normal_async_isr1(...);
  62. void interrupt far normal_async_isr2(...);
  63. void interrupt far normal_async_isr3(...);
  64. void interrupt far normal_async_isr4(...);
  65. void interrupt far normal_async_isr5(...);
  66. void interrupt far normal_async_isr6(...);
  67. void interrupt far normal_async_isr7(...);
  68.